"""
        列表 是 有序 的对象集合:
1. 增加
    列表.insert(索引, 数据)  在指定位置插入数据
    列表.append(数据)        在末尾追加数据
    列表.extend(列表2)       将列表2 的数据追加到列表
2. 修改
    列表[索引] = 数据        修改指定索引的数据
3. 删除
    del 列表[索引]:          删除指定索引的数据
    列表.remove[数据]        删除第一个出现的指定数据
    列表.pop                 删除末尾数据
    列表.pop(索引)           删除指定索引数据
    列表.clear               清空列表
"""

# 列表使用[]定义，一个列表也可存放不同类型，也可存放 重复 数据
name_list = ["张三", "李四", "王五", "赵六"]
print(name_list)

# 1. 获取 :
# -- 顺序获取下标1元素 --
name1 = name_list[1]
print(name1)  # 李四

# -- 倒序获取倒数第二个 --
name1 = name_list[-2]
print(name1)  # 王五

# -- index 获取数据 第一次 出现的索引位置 ， 若数据不存在程序报错 -- ValueError: 'xxx' is not in list
index = name_list.index("李四")
print(index)  # 1

# 2. 增加：insert(索引, 数据), append(数据), extend(列表2)
# -- 在指定索引位置插入数据 --
name_list.insert(1, "小明")
print(name_list)  # ['张三', '小明', '李四', '王五', '赵六']

# -- 在列表末尾追加数据 --
name_list.append("小红")
print(name_list)  # ['张三', '小明', '李四', '王五', '赵六', '小红']

# -- 列表合并 --
name_list2 = ["小张", "小华"]
name_list.extend(name_list2)
print(name_list)  # ['张三', '小明', '李四', '王五', '赵六', '小红', '小张', '小华']

# 3. 修改:
# -- 把对应下标的值修改成新的值 --
name_list[-1] = "张三"
print(name_list)  # ['张三', '小冰', '李四', '王五', '赵六', '小红', '小张', '张三']

# 4. 删除:remove[数据], pop(索引), clear(), del关键字
# -- 把名为 张三 的数据删除, 如果存在 多个 数据，则删除 第一个 数据 --
name_list.remove("张三")
print(name_list)  # ['小冰', '李四', '王五', '赵六', '小红', '小张', '张三']

# -- pop(index)把指定索引位置的数据删除，不传递索引默认是删除最后一位 --
name_list.pop(0)
print(name_list)  # ['李四', '王五', '赵六', '小红', '小张', '张三']
name_list.pop()
print(name_list)  # ['李四', '王五', '赵六', '小红', '小张']

# -- 清空列表 --
name_list.clear()
print(name_list)  # []
